/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package educar.abmDocente;

import educar.models.Docente;
import educar.models.User;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;
import javax.swing.JOptionPane;

/**
 * En esta clase se encuentran los metodos necesarios para modificar un docente 
 * ya existente en el sistema.
 * @author gaston
 */
public class ModificarDocenteController implements ActionListener{
    
    //Atributo que permite abrir una ventana con los datos del docente
    private AgregarDocenteView agregarDocenteView;
    
    //Arreglo usado para almacenar los datos del docente, dni, nombreyApellido y direccion
    private String vector[] = new String[3];
    
    //Este atributo se utiliza como parametro del constructor para que cuando se cierren la ventana actual 
    //volvemos a la ventana anterio(queda visible la ventana que estaba oculta).
    private DocenteController docenteController;
    
    //Atributo auxiliar usado para almacenar el numero de la fila donde se hizo
    //doble clic para modificar el docente
    private int fila;
    
    //Atributo auxiliar para almacenar el dni del docente.
    private String docenteDni;

    //Atributo auxiliar para almacenar el nombre y apellido del docente.    
    private String nombreyApellido;  
    
    /**
     * <hr>
     * ModificarDocenteController(): Constructor de la clase DocenteController, este constructor
     * recibe como parametro al controlador que lo invoco para poder volver a el una vez que se
     * termine de usar la ventana que DocenteController controla
     * <hr>
     * @param docenteControl 
     */
    public ModificarDocenteController(DocenteController docenteControl){
        docenteController = docenteControl;
        agregarDocenteView = new AgregarDocenteView();
        agregarDocenteView.setActionListener(this);
    }
    
    
    /**
     * <hr>
     * setView(): muestra la ventana con los datos del docente al que se le hizo doble clic para modificar
     * @param arreglo
     * @param fila 
     * <hr>
     */
    public void setView(Vector arreglo, int fila){
        this.fila = fila;
        docenteDni = (String) arreglo.elementAt(1);
        nombreyApellido = arreglo.elementAt(2).toString();        
        agregarDocenteView.setDni((String) arreglo.elementAt(1));
        agregarDocenteView.setNombreYApellido((String) arreglo.elementAt(2));
        agregarDocenteView.setDireccion((String) arreglo.elementAt(3));
        agregarDocenteView.setVisible(true);
    }
    
    /**
     * 
     * @param e 
     */
    public void actionPerformed(ActionEvent e){
        //Conocer la procedencia del evento del boton
        Object source = e.getSource();
        if(source == agregarDocenteView.getJbCancelar()){//Cancelar
            agregarDocenteView.dispose();
        }else{//Selecciono Agregar
            if(source == agregarDocenteView.getJbAgregar()){
                vector[0] = agregarDocenteView.getDni(); 
                vector[1] = agregarDocenteView.getNombreYApellido();
                vector[2] = agregarDocenteView.getDireccion();                
                if(!((vector[0].length() == 0) || (vector[1].length() == 0) || (vector[2].length() == 0))){
                    Docente docente = new Docente(vector);
                    User user = new User(vector[1], vector[0], "Docente");                    
                    if (!((vector[0].length() == 0) || (vector[1].length() == 0))) {
                        if (docente.setDocentePorDni(docenteDni) && user.setUserByUsername(nombreyApellido)){                            
                            docenteController.actualizarFila(vector, fila);
                            agregarDocenteView.dispose();
                        } else {
                            JOptionPane.showMessageDialog(null,"Ya existe un docente con el nombre de docente "+ agregarDocenteView.getNombreYApellido()+".","proyecto 2012",JOptionPane.WARNING_MESSAGE);
                        }
                    } else {
                JOptionPane.showMessageDialog(null,"Existe al menos un campo sin completar.\n\nRevise los campos ingresados","proyecto 2012",JOptionPane.WARNING_MESSAGE);
            }
                }
            }
        }
    }
    
}//Fin de la clase ModificarDocenteController.
